// function createCounter(): () => number {
//     let count: number = 0;
//     return function () {
//         count++;
//         return 1
//     };
// }

// class  A {
//     p: number
//     constructor(p: number) {
//         this.p = p
//     }
// }
// let c = new A(3)
// function outFunction() {
//     let count: number = 0;
//     c = new A(5)
//     function innerFunction() {
//             let x = count, y = c;
//             console.log(y)
//     }
//     innerFunction();
// }

class  A {
    p: number
    constructor(p: number) {
        this.p = p
    }
}
let c = new A(3), d = c;
function outFunction() {
    let count: number = 0;
    c.p = 5
    function innerFunction() {
            let x = count, y = d.p;
            console.log(y)
    }
    innerFunction();
}